package main

import (
	"errors"
	"fmt"
	"gorm.io/gorm"
)

func main1() {

	{
		//fmt.Println("")
		stu := Student{} //注意，既可以作为接收体，也可以作为查询条件
		//注意，单个查询可以连写，DB.First().Error
		tx := DB.First(&stu, 2) //
		if tx.Error != nil {
			if errors.Is(tx.Error, gorm.ErrRecordNotFound) {
				fmt.Println("未查到数据")
			} else {
				fmt.Println(tx.Error.Error())
			}
		} else {
			fmt.Println("first:", stu)
		}
	}
	//
	{
		stu := Student{}
		err := DB.Last(&stu).Error
		if errors.Is(err, gorm.ErrRecordNotFound) {
			fmt.Println("last err, not found")
		} else {
			fmt.Println("last:", stu)
		}
	}
	//使用接收体作为查询参数
	{
		stu := Student{ID: 3}
		err := DB.First(&stu).Error
		if errors.Is(err, gorm.ErrRecordNotFound) {
			fmt.Println("First err, not found")
		} else {
			fmt.Println("First:", stu)
		}
	}
	//使用接收体作为查询参数
	{
		stu := Student{ID: 3}
		err := DB.First(&stu, "age=?", 20).Error
		if errors.Is(err, gorm.ErrRecordNotFound) {
			fmt.Println("First err, not found")
		} else {
			fmt.Println("First:", stu)
		}
	}
}
